package com.frank.oj.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.frank.model.entity.user.UserRecord;
import com.frank.oj.model.vo.ACMRankVO;
import com.frank.oj.model.vo.OIRankVO;
import com.frank.oj.model.vo.UserHomeVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author frank
 * @Date 2024/1/25
 */
@Mapper
public interface UserRecordMapper extends BaseMapper<UserRecord> {
    List<ACMRankVO> getRecentSevenACRank();

    UserHomeVO getUserHomeInfo(@Param("uid") String uid, @Param("username") String username);

    IPage<ACMRankVO> getACMRankList(Page<ACMRankVO> page, @Param("uidList") List<String> uidList);

    IPage<OIRankVO> getOIRankList(Page<OIRankVO> page, @Param("uidList") List<String> uidList);

    IPage<OIRankVO> getGroupRankList(Page<OIRankVO> page, @Param("gid") Long gid, @Param("uidList") List<String> uidList, @Param("rankType") String rankType);
}
